#Include "Protheus.ch"
#Include "TopConn.ch"
#include "TOTVS.CH"
#INCLUDE 'RWMAKE.CH'
#INCLUDE 'TBICONN.CH'
#INCLUDE 'Fileio.ch'

/*
���������������������������������������������������������������������������������
���������������������������������������������G������������������������������������
�����������������������������������������������������������������������������ͻ��
���                         FICHA TECNICA DO PROGRAMA                         ���
�����������������������������������������������������������������������������͹��
���Programa         � FSW01M01.PRW   										 		 ���
�����������������������������������������������������������������������������͹��
���Descricso        � Importacao ATIVO FIXO SN1 e SN3 							 ���
���                 � 														        ���
�����������������������������������������������������������������������������͹��
���Autor            �  Cesar						                             ���
�����������������������������������������������������������������������������͹��
���Data de Criacao  � 21/05/2013											        ���
�����������������������������������������������������������������������������͹��
���ATUALIZACOES                                                               ���
�����������������������������������������������������������������������������͹��
���Descricao detalhada da atualizacao � Nome do      � Analista   � Data da   ���
���                                   � Solicitante  � Respons.   � Atualiz.  ���
�����������������������������������������������������������������������������͹��
���Implementada da leitura do layout  �              � Rodolfo S. � 21/05/2013���
���para importacao de fornecedores    �              � Schmidt    �           ���
���                                   �              � Delson     �           ���
���                                   �              � Junior     �           ���
�����������������������������������������������������������������������������͹��
���     IMPORTA��O DOS TITULOS A RECEBER DO FINANCEIRO SE1                    ���
���                                                                           ���
�����������������������������������������������������������������������������ͼ��
���������������������������������������������������������������������������������
���������������������������������������������������������������������������������
*/

User Function FSW01M01()

Private cArqOrigem := ""
Private cDirOrigem := ""


//cArqOrigem := "F:\xDevStudio\csv's\sn1.txt"
cDirOrigem := ALLTRIM(GETMV("TG_DIRIMP"))  //"c:\importa\"
//cDirLog	:= ALLTRIM(GETMV("TG_DIRLOG"))    //"log\"

//cArqLog    := ""
//cMsgLog    := ""//LOG DO PROCESSAMENTO
//nLinha     := 1


//aFilesImp := Directory(cDirOrigem+"*.TXT")

//aFilesImp := SFOrdArq(aFilesImp)

sfImporta()

Return aRet



Static Function sfImporta()
***************************** 

Private aListaFil  := {}


//cTabNew := cTabela

//cMsgLog += "Inicio Importacao tabela: "+cTabela+ " - " + dtoc(date())+" "+time()+CHR(13)+CHR(10)

//Faz a importacao
//if !_lAgendado
//	Processa({|| sfConfirma() },"Processando "+cTabela+"...")
//Else
	SfConfirma()
//EndIf

Return

Static Function SfConfirma()

Local aSN1s		:= {}
Local aSN1Cab		:= {}
Local aSN3Itens  		:= {}
Local aSN3s      		:= {}
Local aCab				:= {}
Local aItens			:= {}
Local aDadosAuto := {} // Array com os dados a serem enviados pela MsExecAuto() para gravacao automatica dos itens do ativo 

Private lMsHelpAuto := .f. // Determina se as mensagens de help devem ser direcionadas para o arq. de log
Private lMsErroAuto := .f. // Determina se houve alguma inconsistencia na execucao da rotina 


//Le Arquivo SN1

FT_FUse( "F:\xDevStudio\csv's\sn1s.txt" )
FT_FGoTop()

While !FT_FEof()
	
	aSN1cab := SEPARA(FT_FReadLn(),";")
	AADD(aSN1s, aSN1cab)
	FT_FSkip()

enddo

//Le Arquivo SN3

FT_FUse( "F:\xDevStudio\csv's\sn3s.txt" )
FT_FGoTop()

While !FT_FEof()
	
	aSN3Itens := SEPARA(FT_FReadLn(),";")
	AADD(aSN3s, aSN3Itens)
	FT_FSkip()

enddo

	
	/*
	##################################################################
	######### INICIO DA IMPORTACAO							   ###########
	##################################################################
	*/
		
 	For nX := 1 to len(aSN1s)
 	
		aCab := { {'N1_FILIAL' , aSN1s[nX][1] ,NIL},; 
		{'N1_GRUPO' ,aSN1s[nX][2] ,NIL},; 
		{'N1_PATRIM' ,aSN1s[nX][3] ,NIL},; 
		{'N1_CBASE' ,aSN1s[nX][4] ,NIL},; 
		{'N1_ITEM' ,aSN1s[nX][5] ,NIL},; 
		{'N1_BITMAP' ,aSN1s[nX][6] ,NIL},; 
		{'N1_AQUISIC' ,aSN1s[nX][7] ,NIL},; 
		{'N1_QUANTD' ,aSN1s[nX][8] ,NIL},; 
		{'N1_BAIXA' ,aSN1s[nX][9] ,NIL},; 
		{'N1_DESCRIC' ,aSN1s[nX][10] ,NIL},; 
		{'N1_CHAPA' ,aSN1s[nX][11] ,NIL},; 
		{'N1_APOLICE' ,aSN1s[nX][12] ,NIL},; 
		{'N1_CODSEG' ,aSN1s[nX][13] ,NIL},; 
		{'N1_DTVENC' ,aSN1s[nX][14] ,NIL},; 
		{'N1_CSEGURO' ,aSN1s[nX][15] ,NIL},; 
		{'N1_TIPOSEG' ,aSN1s[nX][16] ,NIL},; 
		{'N1_FORNEC' ,aSN1s[nX][17] ,NIL},; 
		{'N1_LOJA' ,aSN1s[nX][18] ,NIL},; 
		{'N1_NSERIE' ,aSN1s[nX][19] ,NIL},; 
		{'N1_NFISCAL' ,aSN1s[nX][20] ,NIL},; 
		{'N1_PLACA' ,aSN1s[nX][21] ,NIL},; 
		{'N1_STATUS' ,aSN1s[nX][22] ,NIL},; 
		{'N1_CODCIAP' ,aSN1s[nX][23] ,NIL},; 
		{'N1_ICMSAPR' ,aSN1s[nX][24] ,NIL},; 
		{'N1_DTBLOQ' ,aSN1s[nX][25] ,NIL},; 
		{'N1_CODBEM' ,aSN1s[nX][26] ,NIL},; 
		{'N1_CALCPIS' ,aSN1s[nX][27] ,NIL},; 
		{'N1_PENHORA' ,aSN1s[nX][28] ,NIL},; 
		{'N1_MESCPIS' ,aSN1s[nX][29] ,NIL},; 
		{'N1_DTCLASS' ,aSN1s[nX][30] ,NIL},; 
		{'N1_TPCTRAT' ,aSN1s[nX][31] ,NIL} } 
		//{'N1_CBCPIS' ,aSN1s[nX][32] ,NIL} } 
		//{'N1_VLAQUIS' ,aSN1s[nX][33] ,NIL} } 
		//{'N1_CIAP' ,aSN1s[nX][34] ,NIL} }
		
		For nY := 1 to len(aSN3s)
		
		// Compara se a filial e Codigo do Bem � o mesmo
			if (aSN1s[nX][1] + aSN1s[nX][4]) == (aSN3s[nY][1] + aSN3s[nY][2])
				aAdd(aItens,{ {'N3_FILIAL' ,aSN3s[nY][1] , NIL},;
				{'N3_CBASE' ,aSN3s[nY][2] ,NIL},;
				{'N3_ITEM' ,aSN3s[nY][3] ,NIL},;
				{'N3_TIPO' ,aSN3s[nY][4] ,NIL},;
				{'N3_HISTOR' ,aSN3s[nY][5] ,NIL},;
				{'N3_TPSALDO' ,aSN3s[nY][6] ,NIL},;
				{'N3_TPDEPR' ,aSN3s[nY][7] ,NIL},;
				{'N3_CCONTAB' ,aSN3s[nY][8] ,NIL},;
				{'N3_CUSTBEM' ,aSN3s[nY][9] ,NIL},;
				{'N3_CDEPREC' ,aSN3s[nY][10] ,NIL},;
				{'N3_CCUSTO' ,aSN3s[nY][11] ,NIL},;
				{'N3_CCDEPR' ,aSN3s[nY][12] ,NIL},;
				{'N3_VORIG1' ,aSN3s[nY][13] ,NIL},;
				{'N3_VRDACM1' ,aSN3s[nY][14] ,NIL},;
				{'N3_AQUISIC' ,aSN3s[nY][15] ,NIL},;
				{'N3_DTBAIXA' ,aSN3s[nY][16] ,NIL},;
				{'N3_SEQ' ,aSN3s[nY][17] ,NIL},;
				{'N3_CCDESP' ,aSN3s[nY][18] ,NIL},;
				{'N3_CCCDEP' ,aSN3s[nY][19] ,NIL},;
				{'N3_SUBCTA' ,aSN3s[nY][20] ,NIL},;
				{'N3_SUBCCON' ,aSN3s[nY][21] ,NIL},;
				{'N3_SUBCDEP' ,aSN3s[nY][22] ,NIL},;
				{'N3_SUBCCDE' ,aSN3s[nY][23] ,NIL},;
				{'N3_CLVL' ,aSN3s[nY][24] ,NIL},;
				{'N3_CLVLCON' ,aSN3s[nY][25] ,NIL},;
				{'N3_CLVLDEP' ,aSN3s[nY][26] ,NIL},;
				{'N3_CLVLCDE' ,aSN3s[nY][27] ,NIL},;
				{'N3_CLVLDES' ,aSN3s[nY][28] ,NIL}} )
				//{'N3_RATEIO' ,aSN3s[nY][29] ,NIL}  ) 
			endif	
		next nY	
		
		MSExecAuto( {|X,Y,Z| ATFA010(X,Y,Z)} ,aCab ,aItens, 3) 
		aItens := {}
		
		If lMsErroAuto 
			lRetorno := .F. 
			MostraErro()
		Else
			lRetorno:=.T.
		EndIf
		
	next nX

		
//		If !fIncRegAut("MATA010",aInforma,nIncAlte)
//			//cMsgLog := "Na Linha " + ALLTRIM(STR(nLinha)) +" Produto "+cCodigoP+" n�o gravado devido a erro na rotina autom�tica."+CHR(13)+CHR(10)
//			//appendToLog(cMsgLog,.t.)
//			nLinha++
//		Else
//			nQtImp ++//Incrementa qtd de registros importados
//		Endif
	
	

return


